/**
配置不同的功能使用什么校验方法与通过校验后跳到什么路径
**/

var currCheckInId;//当前选择的入住单ID

//配置 处理每个服务的校验方法与跳转action
var menuConfig = {
	'updateTeamCheckIn':{//修改团队入住
		url:'reception/TeamCheckInBillAction!doBeforeUpdateTeamCheckIn.ef?checkInId='//检验通过后，页面跳转的地址
	},
	'renewalDeposit':{//押金处理
		url:'reception/RenewalDepositAction!doQuery.ef?checkInId='//检验通过后，页面跳转的地址
	},
	'settleUpTeamBill':{//退房结算
		url:'reception/SettlementAction!doList.ef?checkInId='//检验通过后，页面跳转的地址
	},
	'separateSettlement':{//单独结算
		url:'reception/SeparateSettlementAction!doList.ef?checkInId='//检验通过后，页面跳转的地址
	}
}

/**
 * 常量 
 */

//入住类型 对应“GUEST_ROOM_RESERVATION_MANAGE”表“DIC_CHECK_IN_TYPE”字段
var CHECK_IN_TYPE = {
	PERSONAL:1,//1:散客
	TEAM:2,//2：团队
	PERSONS:3//3：同住入住
};

/**
 * 公共方法
 */
//处理点击菜单事件的方法
function handleMenuItemClick(funCode,//功能代码
							checkInId//房间ID
						){
							
	//一个菜单项的配置							
	var oneMenuItemConfig = menuConfig[funCode];
	if(!oneMenuItemConfig){
		alert('服务器名['+funCode+']有误，找不到相应的配置!');
		return;
	}
	
	//校验方法
	var validatorFun = oneMenuItemConfig['validator'];
	//校验通过后，跳到的地址
	var url = oneMenuItemConfig['url'];
	//如果不配置URL，就必需通过此方法执行余下的操作
	var handleFun = oneMenuItemConfig['handleFun'];
	
	var msg;
	if(validatorFun){
		//校验此房间是否符合条件
		msg = validatorFun.call(window,checkInId);
	}else{
		msg = '';
	}
	//如果通过校验
	if(!msg){
		if(url){
			var jumpUrl = ctx+'/'+url+checkInId;
			//alert(jumpUrl);
			/**var w = window;
			if(window.parent)
				w = w.parent
			w.location = jumpUrl;**/
			window.open(jumpUrl,'mainFrame');
		}else{
			//如果不配置URL，就必需通过此方法执行余下的操作
			handleFun.call(window,checkInId);
		}
	}else{
		alert(msg);//显示错误提示
	}
}

//初始化右键菜单，各项目的显隐
function initMenu(checkInId//房间ID
								){
	
	var hasMenu = false;
	currCheckInId = checkInId;//当前选择的房间ID									
									
	for(funCode in menuConfig){
		var id = 'menu_'+funCode;
		var menuItem = g(id);//一个菜单项
		
		if(!menuItem){
			continue;
			//alert(funCode+'菜单不存在！');	
		}
		
		//一个菜单项的配置
		var oneMenuItemConfig = menuConfig[funCode];
		//校验方法
		var validatorFun = oneMenuItemConfig['validator'];
		
		var msg;
		if(validatorFun){
			//校验此入住单是否符合条件
			msg = validatorFun.call(window,checkInId);
		}else{
			msg = '';
		}
		
		//如果通过校验
		if(!msg){
			menuItem.style.display = '';//显示此菜单项
			hasMenu = true;
		}else{
			menuItem.style.display = 'none';//显示此菜单项
		}
	}
	
	return hasMenu;
}

/**
 * 校验方法
 */

